package view;

import java.awt.Color;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

import org.jdom.JDOMException;

import bean.Preference;

import language.Strings;
import util.Constantes;
import util.PersistenciaXml;

public class Principal extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JMenuBar jJMenuBar = null;
	private JMenu jMenuArquivo = null;
	private JMenu jMenuConfiguracoes = null;
	private JMenu jMenuAjuda;
	private JMenuItem jMenuItemPreferences = null;
	private JMenuItem jMenuItemSair = null;
	private JMenuItem jMenuItemSobre;
	private JMenuItem jMenuItemAjuda;
	private JButton btColeta = null;
	private JButton btAvaliar = null;
	private JButton btTreinar = null;
	private JMenuItem jMenuItemColeta = null;
	private JMenuItem jMenuItemTreinamento = null;

	private ConfigObterArquivos configObterArquivos = null;
	private ConfigColeta configColeta = null;
	private ConfigTreinamento configTreinamento = null;
	private StartColeta startColeta = null;
	private StartTrain startTrain = null;
	private StartAvaliacao startAvaliacao = null;
	private StartEvaluate startTestes = null;
	private StartResults startResults = null;
	private StartIndeterminados startIndeterminados = null;
	private StartPreferences startPreferences = null;
	
	public static boolean JANELA_ABERTA = false;
	private JPanel jPanel = null;
	private JLabel jLabel = null;
	private JMenuItem jMenuItemObterDados = null;
	private JButton btResultados = null;
	private JButton btTestes = null;
	private JButton btIndeterminados = null;
	
	public Principal() {
		super();
		selecionaIdioma();		
		initialize();
		
		checarDiretorios();
	}

	private void selecionaIdioma(){
		try {
			if(Constantes.PREFERENCES_XML.exists()){
				PersistenciaXml persistenciaXml = new PersistenciaXml();
				Preference preference = persistenciaXml.selectPreferencesXML();
				
				if(preference.getIdioma().equals(Constantes.IDIOMA_EN)){
					Strings.selecionaIdioma(Constantes.IDIOMA_EN);
				} else if(preference.getIdioma().equals(Constantes.IDIOMA_PT_BT)){
					Strings.selecionaIdioma(Constantes.IDIOMA_PT_BT);
				}				
			} else{
				Strings.selecionaIdioma(Constantes.IDIOMA_EN);
			}
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			Principal.this.validate();
		}
	}
	
	private void initialize() {
		this.setSize(409, 449);
		this.setJMenuBar(getJJMenuBar());
		this.setContentPane(getJContentPane());
		this.setTitle(Strings.TEXT_LABEL_PERFIL_MAG);
		this.setResizable(false);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setLocation(
						((Toolkit.getDefaultToolkit().getScreenSize().width / 2) - (this
								.getWidth() / 2)),
						((Toolkit.getDefaultToolkit().getScreenSize().height / 2) - (this
								.getHeight() / 2)));
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getBtColeta(), null);
			jContentPane.add(getBtAvaliar(), null);
			jContentPane.add(getBtTreinar(), null);
			jContentPane.setBackground(Color.WHITE);
			jContentPane.add(getJPanel(), null);
			jContentPane.add(getBtResultados(), null);
			jContentPane.add(getBtTestes(), null);
			jContentPane.add(getBtIndeterminados(), null);
		}
		return jContentPane;
	}

	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new JMenuBar();
			jJMenuBar.add(getJMenuArquivo());
			jJMenuBar.add(getJMenuConfiguracoes());
			jJMenuBar.add(getJMenuAjuda());
		}
		return jJMenuBar;
	}

	private JMenu getJMenuArquivo() {
		if (jMenuArquivo == null) {
			jMenuArquivo = new JMenu();
			jMenuArquivo.setText(Strings.TEXT_BT_ARQUIVO);
			jMenuArquivo.add(getJMenuItemPreferences());
			jMenuArquivo.add(getJMenuItemSair());
		}
		return jMenuArquivo;
	}

	private JMenu getJMenuConfiguracoes() {
		if (jMenuConfiguracoes == null) {
			jMenuConfiguracoes = new JMenu();
			jMenuConfiguracoes.setText(Strings.TEXT_BT_CONFIGURACOES);
			jMenuConfiguracoes.add(getJMenuItemColeta());
			jMenuConfiguracoes.add(getJMenuItemTreinamento());
			jMenuConfiguracoes.add(getJMenuItemObterDados());
		}
		return jMenuConfiguracoes;
	}
	
	private JMenu getJMenuAjuda() {
		if (jMenuAjuda == null) {
			jMenuAjuda = new JMenu();
			jMenuAjuda.setText(Strings.TEXT_BT_AJUDA); 
			jMenuAjuda.add(getJMenuItemAjuda());
//			jMenuAjuda.add(getJMenuItemSobre()); //TODO descomentar
		}
		return jMenuAjuda;
	}
	
	private JMenuItem getJMenuItemSobre() {
		if (jMenuItemSobre  == null) {
			jMenuItemSobre = new JMenuItem();
			jMenuItemSobre.setText(Strings.TEXT_BT_SOBRE);
			jMenuItemSobre.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
//					if(JANELA_ABERTA){
//						JOptionPane.showMessageDialog(null, 
//								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
//						return;
//					}
					
//					if(startPreferences == null){
//						startPreferences = new StartPreferences();
//					}
//					
//					startPreferences.setVisible(true);
//					startPreferences.setState(JFrame.NORMAL);
//					JANELA_ABERTA = true;
				}
			});
		}
		return jMenuItemSobre;
	}

	private JMenuItem getJMenuItemAjuda() {
		if (jMenuItemAjuda  == null) {
			jMenuItemAjuda = new JMenuItem();
			jMenuItemAjuda.setText(Strings.TEXT_BT_AJUDA_FOTOPERFIL);
			jMenuItemAjuda.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
//					if(JANELA_ABERTA){
//						JOptionPane.showMessageDialog(null, 
//								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
//						return;
//					}
					
//					if(startPreferences == null){
//						startPreferences = new StartPreferences();
//					}
//					
//					startPreferences.setVisible(true);
//					startPreferences.setState(JFrame.NORMAL);
//					JANELA_ABERTA = true;
				}
			});
		}
		return jMenuItemAjuda;
	}

	private JMenuItem getJMenuItemPreferences() {
		if (jMenuItemPreferences  == null) {
			jMenuItemPreferences = new JMenuItem();
			jMenuItemPreferences.setText("Preferences");
			jMenuItemPreferences.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					if(startPreferences == null){
						startPreferences = new StartPreferences();
					}
					
					startPreferences.setVisible(true);
					startPreferences.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return jMenuItemPreferences;
	}
	
	private JMenuItem getJMenuItemSair() {
		if (jMenuItemSair == null) {
			jMenuItemSair = new JMenuItem();
			jMenuItemSair.setText(Strings.TEXT_BT_SAIR);
			jMenuItemSair.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.exit(1);
				}
			});
		}
		return jMenuItemSair;
	}

	private JButton getBtColeta() {
		if (btColeta == null) {
			btColeta = new JButton();
			btColeta.setBounds(new Rectangle(220, 130, 160, 50));
			btColeta.setText(Strings.TEXT_BT_COLETAR_DADOS);
			btColeta.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					if(startColeta == null){
						startColeta = new StartColeta();
					}
					
					startColeta.setVisible(true);
					startColeta.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return btColeta;
	}

	private JButton getBtAvaliar() {
		if (btAvaliar == null) {
			btAvaliar = new JButton();
			btAvaliar.setBounds(new Rectangle(30, 220, 160, 50));
			btAvaliar.setText(Strings.TEXT_BT_AVALIAR);
			btAvaliar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					startAvaliacao = null;
					
					if(startAvaliacao == null){
						startAvaliacao = new StartAvaliacao();
					}
										
					startAvaliacao.setVisible(true);
					startAvaliacao.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return btAvaliar;
	}

	private JButton getBtTreinar() {
		if (btTreinar == null) {
			btTreinar = new JButton();
			btTreinar.setBounds(new Rectangle(30, 130, 160, 50));
			btTreinar.setText(Strings.TEXT_BT_TREINAR);
			btTreinar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					if(startTrain == null){
						startTrain = new StartTrain();
					}
					
					startTrain.setVisible(true);
					startTrain.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return btTreinar;
	}

	private JMenuItem getJMenuItemColeta() {
		if (jMenuItemColeta == null) {
			jMenuItemColeta = new JMenuItem();
			jMenuItemColeta.setText(Strings.TEXT_BT_CONFIG_SERIAIS);
			jMenuItemColeta.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					if(configColeta == null){
						configColeta = new ConfigColeta();
					}
					
					configColeta.setVisible(true);
					configColeta.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return jMenuItemColeta;
	}

	private JMenuItem getJMenuItemTreinamento() {
		if (jMenuItemTreinamento == null) {
			jMenuItemTreinamento = new JMenuItem();
			jMenuItemTreinamento.setText(Strings.TEXT_BT_CONFIG_TREINAMENTO);
			jMenuItemTreinamento.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					if(configTreinamento == null){
						configTreinamento = new ConfigTreinamento();
					}
					
					configTreinamento.setVisible(true);
					configTreinamento.setState(JFrame.NORMAL);
					
					JANELA_ABERTA = true;
				}
			});
		}
		return jMenuItemTreinamento;
	}

	private JPanel getJPanel() {
		if (jPanel == null) {
			jLabel = new JLabel();
			jLabel.setText(Strings.TITULO_APP);
			jLabel.setBounds(new Rectangle(50, 25, 200, 25));
			jLabel.setForeground(Color.WHITE);
			jLabel.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 18));
			jPanel = new JPanel();
			jPanel.setLayout(null);
			jPanel.setBounds(new Rectangle(0, 0, 411, 72));
			jPanel.setBackground(new Color(35,35,142));
			jPanel.add(jLabel, null);
		}
		return jPanel;
	}
	
	private JMenuItem getJMenuItemObterDados() {
		if (jMenuItemObterDados == null) {
			jMenuItemObterDados = new JMenuItem();
			jMenuItemObterDados.setText(Strings.TEXT_BT_OBTER_DADOS);
			jMenuItemObterDados.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					if(configObterArquivos == null){
						configObterArquivos = new ConfigObterArquivos();
					}
					
					configObterArquivos.setVisible(true);
					configObterArquivos.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return jMenuItemObterDados;
	}

	private JButton getBtResultados() {
		if (btResultados == null) {
			btResultados = new JButton();
			btResultados.setBounds(new Rectangle(220, 221, 160, 50));
			btResultados.setText(Strings.TEXT_BT_CONSISTENCIA);
			btResultados.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					startResults = null;
					
					if(startResults == null){
						startResults = new StartResults();
					}
					
					startResults.setVisible(true);
					startResults.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return btResultados;
	}
	
	private JButton getBtTestes() {
		if (btTestes == null) {
			btTestes = new JButton();
			btTestes.setBounds(new Rectangle(30, 310, 160, 50));
			btTestes.setText(Strings.TEXT_BT_TESTES);
			btTestes.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					startTestes = null;
					
					if(startTestes == null){
						startTestes = new StartEvaluate();
					}
										
					startTestes.setVisible(true);
					startTestes.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return btTestes;
	}
	
	private JButton getBtIndeterminados() {
		if (btIndeterminados == null) {
			btIndeterminados = new JButton();
			btIndeterminados.setBounds(new Rectangle(220, 310, 160, 50));
			btIndeterminados.setText(Strings.TEXT_BT_INDETERMINADOS);
			btIndeterminados.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(JANELA_ABERTA){
						JOptionPane.showMessageDialog(null, 
								Strings.TEXT_LABEL_MAIS_DE_UMA_JANELA_ABERTA);
						return;
					}
					
					startIndeterminados = null;
					
					if(startIndeterminados == null){
						startIndeterminados = new StartIndeterminados();
					}
					
					startIndeterminados.setVisible(true);
					startIndeterminados.setState(JFrame.NORMAL);
					JANELA_ABERTA = true;
				}
			});
		}
		return btIndeterminados;
	}
	
	private void checarDiretorios(){
		StringBuffer buffer = new StringBuffer();
		buffer.append(Strings.TEXT_LABEL_DIR_NAO_ENCONTRADOS);
		buffer.append("\n\n");
		
		if(!Constantes.DIRETORIO_RAIZ.exists()){
			Constantes.DIRETORIO_RAIZ.mkdir();
		} if(!Constantes.DIRETORIO_CONFIG.exists()){
			Constantes.DIRETORIO_CONFIG.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL.exists()){
			Constantes.DIRETORIO_PERFIL.mkdir();
		} 
		
		if(!Constantes.DIRETORIO_PERFIL_BACKUP.exists()){
			Constantes.DIRETORIO_PERFIL_BACKUP.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TMP.exists()){
			Constantes.DIRETORIO_PERFIL_TMP.mkdir();
		} 
		
		if(!Constantes.DIRETORIO_PERFIL_CONSISTENCIA.exists()){
			Constantes.DIRETORIO_PERFIL_CONSISTENCIA.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_CONSISTENCIA_COLETA.exists()){
			Constantes.DIRETORIO_PERFIL_CONSISTENCIA_COLETA.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_CONSISTENCIA_FLUXO_NORMALIZADO.exists()){
			Constantes.DIRETORIO_PERFIL_CONSISTENCIA_FLUXO_NORMALIZADO.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_CONSISTENCIA_FLUXO_ORIGINAL.exists()){
			Constantes.DIRETORIO_PERFIL_CONSISTENCIA_FLUXO_ORIGINAL.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_CONSISTENCIA_IMAGENS_PAN_1.exists()){
			Constantes.DIRETORIO_PERFIL_CONSISTENCIA_IMAGENS_PAN_1.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_CONSISTENCIA_IMAGENS_PAN_2.exists()){
			Constantes.DIRETORIO_PERFIL_CONSISTENCIA_IMAGENS_PAN_2.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_CONSISTENCIA_IMAGENS_ZOOM.exists()){
			Constantes.DIRETORIO_PERFIL_CONSISTENCIA_IMAGENS_ZOOM.mkdir();
		} 
		
		if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_CSV.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_CSV.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_METROLOGICO.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_METROLOGICO.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_REAL.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_REAL.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_RNA.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_RNA.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_FLUXO_NORMALIZADO.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_FLUXO_NORMALIZADO.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_FLUXO_ORIGINAL.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_FLUXO_ORIGINAL.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_IMAGENS_PAN_1.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_IMAGENS_PAN_1.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_IMAGENS_PAN_2.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_IMAGENS_PAN_2.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_ESTATISTICA_IMAGENS_ZOOM.exists()){
			Constantes.DIRETORIO_PERFIL_ESTATISTICA_IMAGENS_ZOOM.mkdir();
		} 
		
		if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_METROLOGICO.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_METROLOGICO.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_REAL.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_REAL.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_RNA.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_RNA.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_FLUXO_NORMALIZADO.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_FLUXO_NORMALIZADO.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_FLUXO_ORIGINAL.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_FLUXO_ORIGINAL.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_IMAGENS_PAN_1.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_IMAGENS_PAN_1.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_IMAGENS_PAN_2.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_IMAGENS_PAN_2.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_IMAGENS_ZOOM.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_IMAGENS_ZOOM.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_INDETERMINADOS_CSV.exists()){
			Constantes.DIRETORIO_PERFIL_INDETERMINADOS_CSV.mkdir();
		} 
		
		if(!Constantes.DIRETORIO_PERFIL_TESTES_RNA.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_RNA.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_RNA_COLETA_DADOS.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_RNA_COLETA_DADOS.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_RNA_FLUXO_ORIGINAL.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_RNA_FLUXO_ORIGINAL.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_RNA_FLUXO_NORMALIZADO.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_RNA_FLUXO_NORMALIZADO.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_RNA_IMAGENS_PAN_1.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_RNA_IMAGENS_PAN_1.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_RNA_IMAGENS_PAN_2.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_RNA_IMAGENS_PAN_2.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_RNA_IMAGENS_ZOOM.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_RNA_IMAGENS_ZOOM.mkdir();
		}
		
		if(!Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_COLETA_DADOS.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_COLETA_DADOS.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_FLUXO_ORIGINAL.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_FLUXO_ORIGINAL.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_FLUXO_NORMALIZADO.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_FLUXO_NORMALIZADO.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_IMAGENS_PAN_1.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_IMAGENS_PAN_1.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_IMAGENS_PAN_2.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_IMAGENS_PAN_2.mkdir();
		} if(!Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_IMAGENS_ZOOM.exists()){
			Constantes.DIRETORIO_PERFIL_TESTES_METROLOGICO_IMAGENS_ZOOM.mkdir();
		}
		
		if(!Constantes.DIRETORIO_PERFIL_MAXIMOS.exists()){
			Constantes.DIRETORIO_PERFIL_MAXIMOS.mkdir();
		} 
		
		if(!Constantes.DIRETORIO_PERFIL_TREINAMENTO.exists()){
			Constantes.DIRETORIO_PERFIL_TREINAMENTO.mkdir();
		} 
		
		boolean naoEncontrado = false;
		
		if(!Constantes.CONFIG_XML.exists()){
			naoEncontrado = true;
			buffer.append(Constantes.CONFIG_XML.getName() + "\n");
		} if(!Constantes.SERIAIS_XML.exists()){
			naoEncontrado = true;
			buffer.append(Constantes.SERIAIS_XML.getName() + "\n");
		} if(!Constantes.MAXIMOS_CSV.exists()){
			naoEncontrado = true;
			buffer.append(Constantes.MAXIMOS_CSV.getName() + "\n");
		}
		
		if(naoEncontrado == true){
			JOptionPane.showMessageDialog(null, buffer.toString(), "", JOptionPane.WARNING_MESSAGE);
		}
	}

	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			
			@Override
			public void run() {
				Principal thisClass = new Principal();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);			
			}
		});
	}
}  //  @jve:decl-index=0:visual-constraint="10,10"
